# TODO 算术运算符
# % 取模 返回两个数的余数
# a = 10
# b = 3
# print(a % b) # 10/3等于3 余1 所以输出来的值就是1
# print('---' * 20)       # 30个三横行

# ** 幂 就是几的几次方
'''
print(10 ** 2)    # 10的2次方 输出的结果是100
print(10 ** 3)    # 10的3次方 输出的结果是1000
'''
#  // 取整除
'''
a = 10
b = 3
print(a // b)   # 就是10/3 等于3余1 但是取整除只取整数,不取余数 所以输出的结果是3
print(type(10.0 // 3))  # 只要有一个浮点数参与运算,得出的结果一定是浮点数 可以用type验证
'''
# todo 比较运算符
# == 相等标识符  结果正确就输出的是True,结果不正确就输出False
# print(a == b) #比较a和b的值是否相等 结果是错误的,所以就输出False
# != 不相等标识符  结果正确就输出的是True,结果不正确就输出False
# print(a != b)  # 这里的a不等于b 结果是正确的所以就输出True

# > < 大于 小于标识符   结果正确就输出的是True,结果不正确就输出False
# print(a > b)  # True
# print(a < b)  # Flase

# >=  <= 大于等于 小于等于 标识符 结果正确就输出的是True,结果不正确就输出False
# print(a >= b)   # True
# print(a <= b)  # Flase

# 赋值运算符   =  += -= *= /=
# =
a = 10    # 给a赋值为10
b = 3    # 给b 赋值为3
# name = 'hello'  # 给name 赋值了一个字符串类型

# +=
a += b  # 就是a=a+b
print(a)  # 输出的值是13

# -=
a -= b #就是a=a-b
print(a) # 这里因为上面得出的a的结果是13 所以13-3的结果是10 输出的结果也是10

# *=
a *= b #就是a=a*b
print(a) # 输出的值是30
# /=
a /= b #就是a=a/b
print(a)  #这里因为上面得出的a的结果是30 所以a/b 结果就是10.0

# TODO 身份运算符
#字符串
a = 'hello'
b = 'hello'
print(id(a), id(b))  # 两个同属一个id

# 值比较
print(a == b)
#身份比较(内存地址比较)
print(a is b)  #因为赋予的值是一样的所以结果为True

# 字符串/数字/布尔  基本数据类型
# 列表 容器数据类型
list1 = [1, 2, 3]
list2 = [1, 2, 3]
print (id(list1),id(list2))
# 值比较
print(list1 == list2)  # True
# 身份比较
print(list1 is list2)  # Flase



